#ifndef		__video
#define		__video

/*Ancho de la pantalla(en caracteres)  */
#define		SCREEN_W		80	
/*Alto de la pantalla (en caracteres)  */
#define		SCREEN_H		25
/*Tamanio por caracter */
#define		CHAR_SIZE		2
/*Direccion de mapeo de la pantalla en memoria*/
#define 	P_VIDEO_START 		0xB8000
/*Donde comienza la pantalla para el usuario horizontalmente*/
#define U_HSCREEN_START 6
/* Direccion de comienzo del cursor */
#define 	INIT_CURSOR_POS		(U_HSCREEN_START + (SCREEN_W * 2 * CHAR_SIZE	))




/*Posibles combinaciones para el formato de los caracteres*/
/*Fondo*/
#define	BLACK_BACK	0x00
#define	RED_BACK	0x40
#define	GREY_BACK	0x80
#define	GREEN_BACK	0x20
#define	BROWN_BACK	0x60
#define	YELLOW_BACK	0xE0

/*Color de la letra*/
#define BLACK_CHAR  			0x00
#define	WHITE_CHAR			0x07
#define	RED_CHAR			0x04
#define	GREY_CHAR			0x08
#define	BLUE_CHAR			0x01
#define	GREEN_CHAR			0x02
#define	BROWN_CHAR			0x06
#define	BRIGHT_WHITE_CHAR		0x0F
#define	YELLOW_CHAR			0x0E


#define INI_CURSOR SCREEN_W*2*CHAR_SIZE


/*Limpiar la pantalla de basura en la memoria*/
void clearScreen();

/*setean el formato de la pantalla*/
void setFormat(char format);
void setBackground(char format);
void setCharFormat(char format);



/*Imprime c en la pantalla con el formato format, en la posici�n (x,y) */
void put(char c, char format, int x, int y);
/*Igual que put pero usa el formato default*/
void putChar(char c, int x, int y);

void write(const char *str,  int x, int y);

void moveScreenOneLine(void);

/*Pone un string en algún lugar de la pantalla restringida*/
void writeCursor(char *str);

/*Pone un caracter en algún lugar de la pantalla restringida*/
void putCharCursor(char c);

void move_cursor(int x, int y);

void cleanLastLine(void);
/*
void printPrompt(void);
*/
/*Cambia el fondo del cursor actuel*/
void blinkCursor();

/*Pone un caracter en algún lugar de toda la pantalla*/
void putCharCursorAllScreen(char c);

/*Pone un string en algún lugar de toda la pantalla*/
void writeCursorAllScreen(char *str);

void backSpaceCursor(void);

void nextLine(void);

#endif
